package com.ruoyi.fin.mapper;

import java.util.List;
import java.util.Map;
import com.ruoyi.fin.domain.FinAccount;

/**
 * 财务账户Mapper接口
 * 
 * @author ruoyi
 * @date 2025-06-19
 */
public interface FinAccountMapper 
{
    /**
     * 查询财务账户
     * 
     * @param id 财务账户主键
     * @return 财务账户
     */
    public FinAccount selectFinAccountById(Long id);

    /**
     * 查询财务账户列表
     * 
     * @param finAccount 财务账户
     * @return 财务账户集合
     */
    public List<FinAccount> selectFinAccountList(FinAccount finAccount);

    /**
     * 新增财务账户
     * 
     * @param finAccount 财务账户
     * @return 结果
     */
    public int insertFinAccount(FinAccount finAccount);

    /**
     * 修改财务账户
     * 
     * @param finAccount 财务账户
     * @return 结果
     */
    public int updateFinAccount(FinAccount finAccount);

    /**
     * 删除财务账户
     * 
     * @param id 财务账户主键
     * @return 结果
     */
    public int deleteFinAccountById(Long id);

    /**
     * 批量删除财务账户
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFinAccountByIds(String[] ids);
    
    /**
     * 获取账户余额历史数据
     * 
     * @param params 查询参数（startDate:开始日期, endDate:结束日期, accountId:账户ID）
     * @return 账户余额历史数据
     */
    public List<Map<String, Object>> selectAccountBalanceTrend(Map<String, Object> params);
}
